﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using ServiceSATT;
using ApplicationContext;

namespace UI_SATT
{
    public partial class FrmPrincipal : Form, IListadoTorneos
    {
        string ImplementaTorneo = "TorneoService";
        string[][] ListaDeTorneos;
        Form Reportes;
        Form frmPartidos;
        Form NuevaFeder;
        Form ListaClub;
        Form Acercade;
        Form ListaInscrip;
        Form ListaTorneos;
        Form NuevoTorneo;
        Form Inscripcion;
        Form AltaPersona;
        Form Eventos;
        Form Categorias;
        Form AltaInscripcion;
        Form Sedes;
        Form Padre;
        Form Arbitro;
        Form AltaLocalidades;
        Form JugadorCategoria;

        public FrmPrincipal(Form Parent)
        {
            InitializeComponent();
            Padre = Parent;
        }

        public FrmPrincipal()
        {
            InitializeComponent();
        }
       
        private void acercaDeToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (Acercade == null || Acercade.IsDisposed)
            {
                Acercade = new FrmAcercaDe();
                Acercade.MdiParent = this;
                Acercade.Show();
            }
            else
                Acercade.BringToFront();
        }

        private void eventosToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (Eventos == null || Eventos.IsDisposed)
            {
                Eventos = new FrmEventos();
                Eventos.MdiParent = this;
                Eventos.Show();
            }
            else
                Eventos.BringToFront();
        }

        private void modificarTorneoToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (NuevoTorneo == null || NuevoTorneo.IsDisposed)
            {
                NuevoTorneo = new FrmNuevoTorneo("Modificar");
                NuevoTorneo.MdiParent = this;
                NuevoTorneo.Show();
            }
            else
                NuevoTorneo.BringToFront();
        }

        private void CerrarSesionWindowToolStripMenuItem_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void salirToolStripMenuItem_Click(object sender, EventArgs e)
        {
            this.Close();
            //Padre.Close();
        }

        private void nuevaInscripcionToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            

        }

        private void administrarFederacionesToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (NuevaFeder == null || NuevaFeder.IsDisposed)
            {
                NuevaFeder = new FrmNuevaFederacion();
                NuevaFeder.MdiParent = this;
                NuevaFeder.Show();
            }
            else
                NuevaFeder.BringToFront();
        }

        private void administrarTorneosToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (ListaTorneos == null || ListaTorneos.IsDisposed)
            {
                ListaTorneos = new FrmTorneos();
                ListaTorneos.MdiParent = this;
                ListaTorneos.Show();
            }
            else
                ListaTorneos.BringToFront();
        }

        private void partidosPorTorneoToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (frmPartidos == null || frmPartidos.IsDisposed)
            {
                frmPartidos = new FrmListaPartidos();
                frmPartidos.MdiParent = this;
                frmPartidos.Show();
            }
            else
                frmPartidos.BringToFront();
        }

        private void listaDeClubesToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (ListaClub == null || ListaClub.IsDisposed)
            {
                ListaClub = new FrmListaClubes();
                ListaClub.MdiParent = this;
                ListaClub.Show();
            }
            else
                ListaClub.BringToFront();
        }

        private void administrarSedesToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (Sedes == null || Sedes.IsDisposed)
            {
                Sedes = new FrmListaSedes();
                Sedes.MdiParent = this;
                Sedes.Show();
            }
            else
                Sedes.BringToFront();
        }

        private void listaDeAfiliadosToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (AltaInscripcion == null || AltaInscripcion.IsDisposed)
            {
                AltaInscripcion = new FrmListaAfiliadoClub();
                AltaInscripcion.MdiParent = this;
                AltaInscripcion.Show();
            }
            else
                AltaInscripcion.BringToFront();
        }

        private void arbitrosToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            if (Arbitro == null || Arbitro.IsDisposed)
            {
                Arbitro = new FrmListaArbitros();
                Arbitro.MdiParent = this;
                Arbitro.Show();
            }
            else
                Arbitro.BringToFront();
        }

        private void arbitrosToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (AltaPersona == null || AltaPersona.IsDisposed)
            {
                AltaPersona = new FrmNuevoAfiliado("Empleado",this);
                AltaPersona.MdiParent = this;
                AltaPersona.Show();
            }
            else
                AltaPersona.BringToFront();
        }

        private void categoriasToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (Categorias == null || Categorias.IsDisposed)
            {
                Categorias = new FrmCategorias();
                Categorias.MdiParent = this;
                Categorias.Show();
            }
            else
                Categorias.BringToFront();

        }

        private void FrmPrincipal_FormClosing(object sender, FormClosingEventArgs e)
        {
            Padre.Close();
            this.Dispose();
        }

        private void personasToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (AltaPersona == null || AltaPersona.IsDisposed)
            {
                AltaPersona = new FrmNuevoAfiliado();
                AltaPersona.MdiParent = this;
                AltaPersona.Show();
            }
            else
                AltaPersona.BringToFront();
        }

        private void cuponDeInscripcionToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (JugadorCategoria == null || JugadorCategoria.IsDisposed)
            {
                JugadorCategoria = new FrmJugadorCategoria();
                JugadorCategoria.MdiParent = this;
                JugadorCategoria.Show();
            }
            else
                JugadorCategoria.BringToFront();
        }

        private void manualDeUsuarioToolStripMenuItem_Click(object sender, EventArgs e)
        {
            MessageBox.Show("Disculpe, el manual de usuario se encuentra en desarrollo.");
        }

        private void FrmPrincipal_Load(object sender, EventArgs e)
        {
            IListadoTorneoService TorneoServicio = (IListadoTorneoService)AppContext.Instance.GetObject(ImplementaTorneo);
            TorneoServicio.ListarTorneosPorCerrar(this);
            if (this.ListaDeTorneos.Length > 0)
            {
                foreach (string[] TorneoACerrar in ListaDeTorneos)
                {
                    FrmPopUp PopUp = new FrmPopUp(TorneoACerrar[4], TorneoACerrar[0] + ", " + TorneoACerrar[1] + ", " + TorneoACerrar[2]);
                    PopUp.MdiParent = this;
                    PopUp.Location = new Point(this.Bounds.Width - 230, this.Bounds.Height - 225);
                    PopUp.Show();
                }
            }
        }

        #region Miembros de IListadoTorneos

        public string Evento
        {
            get { return ""; }
        }

        string[][] IListadoTorneos.ListaTorneos
        {
            set { ListaDeTorneos = value; }
        }

        #endregion

        private void localidadesToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (AltaLocalidades == null || AltaLocalidades.IsDisposed)
            {
                AltaLocalidades = new FrmAgregarLocalidades();
                AltaLocalidades.MdiParent = this;
                AltaLocalidades.Show();
            }
            else
                AltaLocalidades.BringToFront();
        }

        private void reportesToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (Reportes == null || Reportes.IsDisposed)
            {
                Reportes = new FrmReportes();
                Reportes.MdiParent = this;
                Reportes.Show();
            }
            else
                Reportes.BringToFront();
        }

        private void inscripcionATorneosToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (Inscripcion == null || Inscripcion.IsDisposed)
            {
                Inscripcion = new FrmNuevaInscripcion();
                Inscripcion.MdiParent = this;
                Inscripcion.Show();
            }
            else
                Inscripcion.BringToFront();
        }

    }
}
